package com.example.java8;

import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

public class TestMap {

    /**
     * map.merge方法
     * 参数1：key值
     * 参数2：value值
     * 参数3:lambda表达式
     *
     *  执行逻辑，当key存在时，将key、value加入到map中，
     *  当key存在时将已存在的值和当前value按照lambda的表达式进行处理后赋给key值
     *
     *  lambda：(a,b)->{} ；a是key的oldValue，b为key的newValue
     */
    @Test
    public void testMerge(){
        Map<String,String> map = new HashMap<>();
        String s =map.merge("xrb","ceshi",(a,b)->a+b);
        String ss =map.merge("xrb","2",(a,b)->a+b);
        System.out.println(ss);
    }

    /**
     * computeIfAbsent方法
     * 参数1：key
     * 参数2：lambda表达式
     * 执行逻辑：当前key存在时使用key对应的value，当key不存在时将lambda表达式计算的值作为value
     */
    @Test
    public void testComputeIfAbsent(){
        String s = "111";
        Map<String,String> map = new HashMap<>();
        //map.computeIfAbsent("xrb",(v)->"20");
        map.computeIfAbsent("xrb",(key)->s);
        System.out.println(map);
    }
}
